// 采用数组模拟堆栈操作

// 栈(Stack)的特点是 后进先出( LIFO : Last In , First Out )

// 通过原型为Array添加新方法
Array.prototype.peek = function(){
    if( this.length > 0 ) {
        return this[ this.length - 1 ];
    }
}

// 定义一个空数组用来表示栈
const stack = [];
console.log(stack);

// 向栈顶压入元素
stack.push('孙悟空');
console.log(stack);

stack.push('小白龙');
console.log(stack);

// 检查栈顶元素(但不删除栈顶元素)
let top = stack.peek(); // 通过 Array 原型扩展的方法
console.log(top);
console.log(stack);

// 从栈顶弹出元素
top = stack.pop();
console.log(top);
console.log(stack);

top = stack.pop();
console.log(top);
console.log(stack);